-- @Author: 作者QQ381990860
-- @Date:   2021-11-05 10:34:34
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:58:57

local 场景类_世界大地图小分类 = class()
local floor = math.floor
local format = string.format
local tonumber = tonumber
local insert = table.insert
local mouseb = 引擎.鼠标弹起
local wns = 引擎.文件是否存在
local xys = 生成XY
local fgz = 分割字符
local tp,zts,zts1
local 当前地图12 = 0

function 场景类_世界大地图小分类:初始化(根)
	self.ID = 1
	self.注释 = "世界大地图小分类"
	self.可视 = false
	self.鼠标 = false
	self.焦点 = false
	self.可移动 = true
	self.记忆地图 = 0
	self.窗口时间 = 0
	self.目标格子 = xys()
	local 资源 = 根.资源
	local 按钮 = 根._按钮
	local 自适应 = 根._自适应
	tp = 根
	self.资源组 = {
		[1] = 自适应.创建(0,1,0,0,3,9),
		[2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),--关闭按钮
	}
	self.偏移X = 0
	self.偏移Y = 0
	self.窗口时间 = 0
	self.目标格子 = nil
	self.xx = 0
	self.yy = 0

	self.资源组[2]:绑定窗口_(1)

	zts = tp.字体表.普通字体
    zts1 = tp.字体表.描边字体
end

function 场景类_世界大地图小分类:打开(map)
	self.当前地图12 = map
	if not map or MapData[map].小地图 == nil then
		if self.可视 then
			self.可视 = false
		else
			tp.窗口.消息框:添加文本("此场景无法查看小地图")
		end
	else
		if self.记忆地图 ~= map then
			local 小地图宽度,小地图高度 = MapData[map].宽*20,MapData[map].高*20
			local ids = format("./img/%d.png",self.当前地图12)
			if wns(ids) and MapData[map].小地图 == nil then
				self.小地图 = tp.资源:载入(ids,"图片")
			else
			    self.小地图 = tp.资源:载入('smap.dll',"网易WDF动画",MapData[map].小地图)
			end
			self.宽度 = self.小地图:取宽度()
			self.高度 = self.小地图:取高度()

			self.x = self.x or floor((全局游戏宽度 - self.宽度) /2)
			self.y = self.y or floor((全局游戏高度 - self.高度) /2)

			self.资源组[1]:置宽高(self.宽度-1,self.高度+19)

			self.偏移X = (self.宽度 - 20) / 小地图宽度
			self.偏移Y = (self.高度 - 20)/ 小地图高度
			self.记忆地图 = map
			self.可视 = true
			tp.运行时间 = tp.运行时间 + 1
			self.窗口时间 = tp.运行时间
			insert(tp.窗口_,self)
		elseif self.记忆地图 == map and self.可视 then
		    self.可视 = false
		elseif self.可视 == false and self.记忆地图 == map then
			self.可视 = true
			insert(tp.窗口_,self)
			tp.运行时间 = tp.运行时间 + 1
			self.窗口时间 = tp.运行时间
		end
	end

end

function 场景类_世界大地图小分类:显示(dt,x,y)
	   self.资源组[2]:更新(x,y)
	if self.鼠标 then
		if self.资源组[2]:事件判断() then
			self:打开()
		end
	end
	self.焦点 = false

	self.资源组[1]:显示(self.x,self.y)
    self.资源组[2]:显示(self.x+self.资源组[1].宽度-20,self.y+3)
    tp.窗口标题背景_:显示(self.x+self.资源组[1].宽度/2-73,self.y)
	zts1:显示(self.x+60,self.y+1,"地图编号："..self.记忆地图)
	zts1:显示(self.x+self.资源组[1].宽度/2-30,self.y+1,"地图预览")
	self.小地图:置颜色(4294967295)
	self.小地图:显示(self.x+2,self.y+22)

end

function 场景类_世界大地图小分类:检查点(x,y)
	if self.资源组[1]:是否选中(x,y) then
		return true
	end
end

function 场景类_世界大地图小分类:初始移动(x,y)
	tp.运行时间 = tp.运行时间 + 1
	if not tp.消息栏焦点 then
  		self.窗口时间 = tp.运行时间
 	end
	if not self.焦点 then
		tp.移动窗口 = true
	end
	if self.鼠标 and  not self.焦点 then
		self.xx = x - self.x
		self.yy = y - self.y
	end
end

function 场景类_世界大地图小分类:开始移动(x,y)
	if self.鼠标 then
		self.x = x - self.xx
		self.y = y - self.yy
	end
end

return 场景类_世界大地图小分类